EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell.
</_description>
</key>
+ <key name="disable-extension-version-validation" type="b">
+ <default>false</default>
+ <_summary>Disables the validation of extension version compatibility</_summary>
+ <_description>
+ GNOME Shell will only load extensions that claim to support the current
+ running version. Enabling this option will disable this check and try to
+ load all extensions regardless of the versions they claim to support.
+ </_description>
+ </key>
<key name="favorite-apps" type="as">
<default>[ 'epiphany.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'nautilus.desktop', 'gnome-documents.desktop' ]</default>
<_summary>List of desktop file IDs for favorite applications</_summary>
const disconnect = Lang.bind(_signals, _signals.disconnect);
const ENABLED_EXTENSIONS_KEY = 'enabled-extensions';
+const EXTENSION_DISABLE_VERSION_CHECK_KEY = 'disable-extension-version-validation';
var initted = false;
var enabled;
// Default to error, we set success as the last step
extension.state = ExtensionState.ERROR;
- if (ExtensionUtils.isOutOfDate(extension)) {
+ let checkVersion = !global.settings.get_boolean(EXTENSION_DISABLE_VERSION_CHECK_KEY);
+
+ if (checkVersion && ExtensionUtils.isOutOfDate(extension)) {
extension.state = ExtensionState.OUT_OF_DATE;
} else {
let enabled = enabledExtensions.indexOf(extension.uuid) != -1;
enabledExtensions = newEnabledExtensions;
}
+function _onVersionValidationChanged() {
+ if (Main.sessionMode.allowExtensions) {
+ enabledExtensions.forEach(function(uuid) {
+ if (ExtensionUtils.extensions[uuid])
+ reloadExtension(ExtensionUtils.extensions[uuid]);
+ });
+ }
+}
+
function _loadExtensions() {
global.settings.connect('changed::' + ENABLED_EXTENSIONS_KEY, onEnabledExtensionsChanged);
+ global.settings.connect('changed::' + EXTENSION_DISABLE_VERSION_CHECK_KEY, _onVersionValidationChanged);
+
enabledExtensions = getEnabledExtensions();
let finder = new ExtensionUtils.ExtensionFinder();